<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    

<script>
    // 进制: 进位计数制,是人为定义的带进位的计数方法
    // 逢进制数+1,原位归0
    // 10进制,逢10进1,原位归0,如: 1 2 3 4 5 6 7 8 9 10 11 12 ...
    // 8进制,逢8进1,原位归0,如: 1 2 3 4 5 6 7 10 11 12 ...
    // 16进制,逢16进1,原位归0,如: 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 ...
    // 2进制,逢2进1,原位归0,如: 0 1 10 11 100 101 ...

    console.log( 0.1+0.2 );// 0.30000000000000004
    // 10进制小数转成二进制小数:
    // 小数*2 取乘积的整数部分(0|1),一直到乘积小数为0时结束转换

    // 将10进制的0.1转成2进制:
    // /* 0.1*2=0.2 --> 0
    // 0.2*2=0.4 --> 0
    // 0.4*2=0.8 --> 0
    // 0.8*2=1.6 --> 1
    // 0.6*2= 1.2 --> 1

    // 0.2*2=0.4 --> 0
    // 0.4*2=0.8 --> 0
    // 0.8*2=1.6 --> 1
    // 0.6*2= 1.2 --> 1
    
    // 0.2*2=0.4 --> 0
    // 0.4*2=0.8 --> 0
    // 0.8*2=1.6 --> 1
    // 0.6*2= 1.2 --> 1

    // 0.2*2=0.4 --> 0
    // 0.4*2=0.8 --> 0
    // 0.8*2=1.6 --> 1
    // 0.6*2= 1.2 --> 1
    // 0.0 0011 0011 0011 0011 0011 ..... */

    // 1.js存储浮点数的标准: IEEE754双精度64位(小数最大为52位)
    // 2.计算机在计算0.1+0.2时,将10进制小数转成2进制(小数位无限循环)
    // 3.转成2进制计算完成之后,又转成10进制显示出来


    // 假如工作中的业务设计浮点数计算(金钱计算),如何解决?
    // 1.浮点数计算的问题
    // 2.在页面中显示的问题(数字不会显示没有意义的0)
    // document.write(1.600);// 1.6

    // 1.转成整数计算
    var num1 = 0.1 * 100;
    var num2 = 0.2 * 100;
    var res = (num1 + num2)/100;
    // document.write(res);// 0.3

    // 2.转成字符串显示在页面中
    // toFixed(n)方法将数字转成字符串,并保留n位小数
    var num3 = 123;
    var num4 = 123.456;
    console.log( num3.toFixed(2) );// '123.00'
    console.log( num4.toFixed(2) );// '123.46'
    document.write('123.00');

</script>
</body>
</html>